package com.meituan.sdk.model.pms.loyalty.consumeMemberPoint;

import com.meituan.sdk.annotations.ApiMeta;
import com.google.gson.reflect.TypeToken;
import javax.validation.constraints.NotBlank;
import java.lang.reflect.Type;
import com.meituan.sdk.internal.utils.JsonUtil;
import com.google.gson.annotations.SerializedName;
import javax.validation.constraints.NotNull;
import com.meituan.sdk.MeituanResponse;
import com.meituan.sdk.MeituanRequest;

/**
* 会员积分消费
* This file was automatically generated.
*/
@ApiMeta(
    path = "/pms/loyalty/consumeMemberPoint",
    businessId = 57,
    apiVersion = "10013",
    apiName = "consume_member_point",
    needAuth = true
)
public class ConsumeMemberPointRequest implements MeituanRequest<Long> {
    /**
    * <p data-diff-id="ct-diff-id-1adc38f0-e945-4f50-abde-ee99b4384ef2">会员ID</p>
    */
    @NotBlank(message = "memberId不能为空")
    @SerializedName("memberId")
    private String memberId;
    /**
    * <p data-diff-id="ct-diff-id-591dd4a5-3505-423f-b9c3-a437228c2b65">积分来源门店，集团总部请填写0</p>
    */
    @NotNull(message = "pointHotelId不能为空")
    @SerializedName("pointHotelId")
    private Long pointHotelId;
    /**
    * <p data-diff-id="ct-diff-id-54559dbc-8262-4ec6-a95e-65655ea3418c">积分消费方式：<br></p><table data-borderwidth="1" data-diff-id="ct-diff-id-16b4b7c5-9896-4ef6-9863-cae8feef40cb"><tbody><tr data-row-diff-id="ct-tr-diff-id-b545510b-ea88-419a-b341-f3ea041ecbbc"><th data-colwidth="178" width="178" data-cell-diff-id="ct-cell-diff-id-6d0aad62-3811-4fa2-a1cf-99c51512f3dc"><p data-diff-id="ct-diff-id-c722675e-7f4c-4a0c-9933-e62a5c46f04d">编码</p></th><th data-colwidth="154" width="154" data-cell-diff-id="ct-cell-diff-id-b223163c-70c8-466d-b767-468840a32944"><p data-diff-id="ct-diff-id-6fbc4680-920c-48cd-bbca-474bfedf276a">描述</p></th></tr><tr data-row-diff-id="ct-tr-diff-id-d3c13473-5e70-414e-b54c-7390c25af0e1"><td data-colwidth="178" width="178" data-cell-diff-id="ct-cell-diff-id-f891e1ea-904f-43ef-80dc-d8fc192f0864"><p data-diff-id="ct-diff-id-11c26600-86f7-4e99-8b8d-d2d8b7b36579">ACTIVITY_CONSUME</p></td><td data-colwidth="154" width="154" data-cell-diff-id="ct-cell-diff-id-7b4c54cf-5a27-464f-b0ae-f5f8c6dd7b33"><p data-diff-id="ct-diff-id-052b98d8-5554-403e-bd60-4e0a9ac7182a"><span style="color: rgb(51, 51, 51)">活动消耗</span></p></td></tr><tr data-row-diff-id="ct-tr-diff-id-24623174-e578-4ec1-ac9b-d7605a9cab78"><td data-colwidth="178" width="178" data-cell-diff-id="ct-cell-diff-id-e5b0f508-0be1-431d-9dd9-66e262426394"><p data-diff-id="ct-diff-id-aa32780d-cdf9-45d1-84d6-b29c1e3477b2">EXCHANGE_GIFT</p></td><td data-colwidth="154" width="154" data-cell-diff-id="ct-cell-diff-id-c27c515f-aeb0-42ac-8f39-63572ebe1dfb"><p data-diff-id="ct-diff-id-ce5e3636-2283-4d7f-9007-9dd6e092b06e">兑换礼品</p></td></tr></tbody></table><p data-diff-id="ct-diff-id-ccc5e3ee-6390-49e5-8907-e5582708e088"></p>
    */
    @NotBlank(message = "pointType不能为空")
    @SerializedName("pointType")
    private String pointType;
    /**
    * <p data-diff-id="ct-diff-id-a3228fa6-436a-43bb-bc28-4e521816f61e">积分数量</p>
    */
    @NotBlank(message = "pointAmount不能为空")
    @SerializedName("pointAmount")
    private String pointAmount;
    /**
    * <p data-diff-id="ct-diff-id-8ffd60f3-2e6d-442b-86dd-d5b38e53c32f">备注</p>
    */
    @NotBlank(message = "remark不能为空")
    @SerializedName("remark")
    private String remark;

    public String getMemberId() {
        return memberId;
    }
    public void setMemberId(String memberId) {
        this.memberId = memberId;
    }
    public Long getPointHotelId() {
        return pointHotelId;
    }
    public void setPointHotelId(Long pointHotelId) {
        this.pointHotelId = pointHotelId;
    }
    public String getPointType() {
        return pointType;
    }
    public void setPointType(String pointType) {
        this.pointType = pointType;
    }
    public String getPointAmount() {
        return pointAmount;
    }
    public void setPointAmount(String pointAmount) {
        this.pointAmount = pointAmount;
    }
    public String getRemark() {
        return remark;
    }
    public void setRemark(String remark) {
        this.remark = remark;
    }


    @Override
    public MeituanResponse<Long> deserializeResponse(String response) {
        Type type = new TypeToken<MeituanResponse<Long>>(){}.getType();
        return JsonUtil.fromJson(response, type);
    }
    @Override
    public String serializeToJson() {
        return JsonUtil.toJson(this);
    }


    @Override
    public String toString() {
        return "ConsumeMemberPointRequest{" + "memberId=" + memberId + "," + "pointHotelId=" + pointHotelId + "," + "pointType=" + pointType + "," + "pointAmount=" + pointAmount + "," + "remark=" + remark + "}";
    }
}
